package com.etime.shyauth.services.interfaces;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.etime.shyauth.dto.PassDto;
import com.etime.shyauth.pojo.SysUser;

import java.util.List;

/**
 * 系统用户管理service层接口
 */
public interface SysUserService {

    /**
     * 增加用户
     *
     * @param user 用户实体
     * @return 0失败；1成功
     */
    int insertSysUser(SysUser user);

    /**
     * 修改用户
     *
     * @param user 用户实体
     * @return 0失败；1成功
     */
    int updateSysUser(SysUser user);

    /**
     * 修改用户的unionid
     *
     * @param user
     * @return
     */
    int updateSysUserUnionId(SysUser user);

    /**
     * 修改用户指定字段；用于小程序端修改用户个人信息
     *
     * @param user
     * @return
     */
    int updateBaseSysUser(SysUser user);

    /**
     * 根据条件查询用户列表
     *
     * @param user 查询条件
     * @return 用户列表
     */
    List<SysUser> selectUserList(SysUser user);

    /**
     * 分页查询
     *
     * @param user
     * @param pagenum
     * @param pagesize
     * @return
     */
    Page<SysUser> selectUserByPage(SysUser user, Long pagenum, Long pagesize);

    /**
     * 根据id查询一条用户详细信息
     *
     * @param userid 用户id
     * @return 用户实体
     */
    SysUser selectUserById(Integer userid);

    /**
     * 修改用戶 密码
     * 1、获取用户
     * 2、旧密码匹配密码
     * 3、加密
     * 4、修改用户
     *
     * @param dto
     * @return int 1 成功 ，0 失败，-1 旧密码匹配密码失败
     * @Author wb
     */
    int updateUserPass(PassDto dto);

    /**
     * 修改用户的从属销售人员id
     *
     * @param user
     * @return
     */
    int updateSysSaleUserId(SysUser user);
}
